if 與 if else結構為Swift中基礎條件判斷結構,可以選擇利用單個if 或是if else來實現多條件判斷。
var a = 10
// 先宣告一個變數
單個 if 判斷 a 是否小於10
if a < 10{
print(a)
}
if else 組合判斷
if a > 10 {
a -= 10
print(a)
}else {
print(a)
}
if else 多條件判斷
if a > 0 && a < 10 {
print(a)
}else if a <= 0 {
a = -a
print(a)
}else if a <= 10 && a < 20 {
a -= 10
print(a)
}else{
print("bigger")
}
switch case 結構,透過對應的方式來選擇要執行的程式碼,Swift中switch可以進行任何類型的對應,並且case子句的語法和擴展更加靈活。
var charac = "a"
switch charac {
case "a":
print("chara is a")
case "b":
print("chara is b")
case "c":
print("chara is c")
case "d":
print("chara is d")
default:
print("default")
}
// 印出 chara is a
假設case都沒有對應到的話,則會執行default,default也是可以省略不寫的。
case 的 break 以及其他用法,會在之後介紹。
switch結構可以在同一個case寫多個條件,假設有一個對應到,就會執行程式。
switch charac {
case "e", "f", "g":
print("charac is word")
default:
print("default")
}
// 印出 default 因為都沒對應到
case也可以是一個區間範圍
var num = 3
switch num {
case 1...3:
print("1<=num<=3")
case 4:
print("4")
default:
print("no num")
}
// 印出 1<=num<=3
switch與元組一起使用
有三種方式,一種是完全匹配,一種是選擇匹配,一種是範圍匹配
var tup = (0,0)
switch tup {
case (0,1):
print("sure")
// 完全匹配,所有元素必須完全相等
case (_,1):
print("sim")
// 選擇匹配,可以指定元組中一些元素進行匹配
case (0...3,0...3):
print("SIM")
// 範圍匹配,在範圍中的元素匹配上,就可以
default:
print("")
}
// 印出 SIM
case可以宣告臨時參數
臨時變數不能起到匹配的作用
var tuple = (0,0)
switch tuple {
case (let a, 1):
print(a)
case (let b, 1):
print(b)
case let (a,b):
// let a ,let b 跟 let (a,b)是一樣的
print(a,b)
default:
print("")
}
// 印出 0 0
where條件
where是用在開發者,可能需要捕獲元組中的第一個元素,同時又需要與第一個元素相關的條件成立,可以使用where條件來實現。
switch tuple {
case (let a,1):
print(a)
// 當元組中的兩個元素都等於0時才匹配成功
case (let b, 0) where b == 0:
print(b)
// 當兩個都相同時,才會進入下面的case
case let (a,b) where a == b:
print(a,b)
default:
print("")
}
接下來,是流程跳轉的介紹